#include "user_manage.h" //

void user_sw_input_new(elem_type *Pi, void *data, size_t n)
{

    switch (n)
    {
    case 1:
        memcpy(Pi->_USER.name, data, sizeof(Pi->_USER.name));
        break;
    case 2:
        memcpy(Pi->_USER.phone, data, sizeof(Pi->_USER.phone));
        break;
    case 3:
        memcpy(Pi->_USER.ID_card, data, sizeof(Pi->_USER.ID_card));
        break;
    case 4:
        memcpy(Pi->_USER.sex, data, sizeof(Pi->_USER.sex));
        break;
    case 5:
        memcpy(Pi->_USER.md5_passwd, data, sizeof(Pi->_USER.md5_passwd));
        break;

    default:
        break;
    }
}

void user_Vector_Add(vector v)
{
    elem_type *Pi = (elem_type *)calloc(1, sizeof(elem_type));
    void *temp = (void *)calloc(1, sizeof(elem_type));

    char YN_save, c;

    int num = 0, j = 0;
    int ID = 0;
    printf("ID::%s", v->buff[v->size - 1]._USER.ID);
    ID = atoi(v->buff[v->size - 1]._USER.ID);
    sprintf(Pi->_USER.ID, "%d", ++ID);

    printf("注册新用户,预设ID为%s\n", Pi->_USER.ID);

    // system("clear");
    while (j < PROJECT_NUM)
    {

        printf("请输入用户的%s", user_gfind_v[j + 1]);
        printf("\n:>");

        scanf(user_gscanf_matrl[0], temp); // 获取数据

        while ('\n' != *(char *)temp && '\n' != (c = getchar()))
            ;

        user_sw_input_new(Pi, temp, j + 1);
        j++;
    }

    // MD5加密

    printf("是否保存？(Y/N):");

    YN_save = getchar();
    while ('\n' != YN_save && '\n' != (c = getchar())) // 一个回车也会进入下一循环
        ;

    if (YN_save == 'Y' || YN_save == 'y')
    {
        MD5_encryption(Pi);

        vector_push_back(v, *Pi); // 数据尾插

        printf("正在更新数据\n");
        user_Update_data(v);
    }
    else
    {
        printf("no save\n");
    }

    // sleep(1);
}

// if ('Q' == Pi->ID[0] || 'q' == Pi->ID[0])
//     break;

// YN_continue = getchar();

// while ('\n' != YN_continue && '\n' != (c = getchar())) // 一个回车也会进入下一循环
//     ;

// if (NULL != (temp = find_data(v, Pi->ID, find_dast_ID, 1)))
// {

//     // printf(" 是 %s", Pi.ID, temp->name);

//     printf(gscanf_matrl[0], gfind_v[0]);
//     printf("：");
//     printf(gscanf_matrl[0], Pi->ID);
//     printf("在仓库中，信息如下\n\n");

//     show_inf(temp);

//     printf("\n\n是否继续(Y/N)(退出请输入Q)？"); // 是原有货物，只修改其进货量
//     YN_continue = getchar();

//     while ('\n' != YN_continue && '\n' != (c = getchar())) // 一个回车也会进入下一循环
//         ;

//     if ('Q' == YN_continue || 'q' == YN_continue)
//     {
//         return;
//     }
//     if (YN_continue != 'Y' && 'y' != YN_continue)
//         continue;

//     printf("\n输入此次货物进货量：");
//     scanf("%d", &num);
//     if (0 > num)
//     {
//         printf("进货量输入为负！\n");
//         continue;
//     }
//     temp->size += num; // 增加余量
//     temp->cap += num;  // 增加容量

//     continue;
// }

// printf("\n输入新货物名：");
// scanf("%s", Pi->name);

// printf("\n货物进货量：");
// scanf("%d", &Pi->size);

// Pi->cap = Pi->size;
// vector_push_back(v, *Pi); // 顺序表尾插

// printf("\n录入成功是否继续(Y/N)？");
// YN_continue = getchar();

// if (YN_continue == 'N' || YN_continue == 'n')
//     break;